function showmenuie5(s,id,name) {
	if(document.getElementById("ie5menu")!=null){
		hidemenuie5();
	}
	addmenutobody(s);
	document.body.onclick = hidemenuie5;
	var rightedge = document.body.clientWidth-event.clientX;
	var bottomedge = document.body.clientHeight-event.clientY;
	if (rightedge < ie5menu.offsetWidth)
		ie5menu.style.left = document.body.scrollLeft + event.clientX - ie5menu.offsetWidth;
	else
		ie5menu.style.left = document.body.scrollLeft + event.clientX;
	if (bottomedge < ie5menu.offsetHeight)
		ie5menu.style.top = document.body.scrollTop + event.clientY - ie5menu.offsetHeight;
	else
		ie5menu.style.top = document.body.scrollTop + event.clientY;
	//todo:判断id大小，如果为“其他”则不显示菜单
	if (s==1&&id>200){
		ie5menu.style.visibility = "visible";
		document.getElementById("item0").url = "javascript:menuurl(1,0,"+id+",'"+name+"');";
		document.getElementById("item1").url = "javascript:menuurl(1,1,"+id+",'"+name+"');";
		document.getElementById("item2").url = "javascript:menuurl(1,2,"+id+",'"+name+"');";
		document.getElementById("item3").url = "javascript:menuurl(1,3,"+id+",'"+name+"');";
		document.getElementById("item4").url = "javascript:menuurl(1,4,"+id+",'"+name+"');";
		document.getElementById("item5").url = "javascript:menuurl(1,5,"+id+",'"+name+"');";
		document.getElementById("item6").url = "javascript:menuurl(1,6,"+id+",'"+name+"');";
		document.getElementById("item7").url = "javascript:menuurl(1,7,"+id+",'"+name+"');";
		document.getElementById("item8").url = "javascript:menuurl(1,8,"+id+",'"+name+"');";	
	}else if(s==0){
		ie5menu.style.visibility = "visible";
		document.getElementById("item0").url = "javascript:menuurl(0,0,"+id+",'"+name+"');";
		document.getElementById("item4").url = "javascript:menuurl(0,4,"+id+",'"+name+"');";
		document.getElementById("item6").url = "javascript:menuurl(0,6,"+id+",'"+name+"');";
		document.getElementById("item8").url = "javascript:menuurl(0,8,"+id+",'"+name+"');";	
	}else{
		ie5menu.style.visibility = "hidden";
	}
	return false;
}
function addmenutobody(s){
	var h=CreateEl("div","ie5menu","skin0");
	var x=document.createElement("hr");
	x.style.height=1;
	x.style.margin=0;
	x.color="#cacaca";
	h.onmouseover=new Function("highlightie5();");
	h.onmouseout=new Function("lowlightie5();");
	h.onclick=new Function("jumptoie5();");
	if(s==1){
		addsonmenu(h,0,"L","　查看单位");
		addsonmenu(h,1,"E","　修改信息");
		addsonmenu(h,2,"T","　移动位置");
		addsonmenu(h,3,"C","　合并单位");
		addsonmenu(h,4,"A","　新增单位");
		addsonmenu(h,5,"D","　删除单位");
		h.appendChild(x);
		addsonmenu(h,6,"R","　单位计划");
		addsonmenu(h,7,"P","　单位项目");
		addsonmenu(h,8,"S","　单位统计");
	}else{
		addsonmenu(h,0,"L","　查看部委");
		addsonmenu(h,4,"A","　新增单位");
		addsonmenu(h,6,"R","　部委计划");
		addsonmenu(h,8,"S","　部委统计");
	}
	document.getElementsByTagName("body")[0].appendChild(h);
}

function addsonmenu(up,num,short,title){
	var s=CreateEl("div","item"+num,"menuitems");
	s.url="javascript:void(0);";
	s.innerHTML="<span class='menuitems_'>"+short+"</span>"+title;
	up.appendChild(s);
}
function menuurl(x,s,id,name){
	var thed = document.getElementById("dep"+id);
	if(thed!=null){
		if(x==1){
			switch (s) {
				case 0:depdetail(1,id);break;
				case 1:modinode(id);break;
				case 2:movenode(id);break;
				case 3:unitenode(id,name);break;
				case 4:adddep(id,1);break;
				case 5:deldep(id,name);break;
				case 6:statiplan(id,base64encode(utf16to8("dept_"+id)));break;
				case 7:building();break;
				case 8:statinode(id,base64encode(utf16to8("dept_"+id)));break;
				default:break;
			}
		}else{
			var sid = id-200;
			switch (s) {
				case 0:depdetail(0,sid);break;
				case 4:adddep(sid,'0');break;
				case 6:statiplan(id,base64encode(utf16to8("root_"+sid)));break;
				case 8:statinode(id,base64encode(utf16to8("root_"+sid)));break;
				default:break;
			}
		}
	}else{
		depdetail(x,id-200*(1-x));
		//alert(id);
		setTimeout("menuurl("+x+","+s+","+id+",'"+name+"')",500);
	}
}

//BASE64
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
		52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
		-1,	0,	1,	2,	3,  4,	5,	6,	7,	8,	9, 10, 11, 12, 13, 14,
		15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
		-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
		41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
function base64encode(str) {
		var out, i, len;
		var c1, c2, c3;
		len = str.length;
		i = 0;
		out = "";
		while(i < len) {
 c1 = str.charCodeAt(i++) & 0xff;
 if(i == len)
 {
		 out += base64EncodeChars.charAt(c1 >> 2);
		 out += base64EncodeChars.charAt((c1 & 0x3) << 4);
		 out += "==";
		 break;
 }
 c2 = str.charCodeAt(i++);
 if(i == len)
 {
		 out += base64EncodeChars.charAt(c1 >> 2);
		 out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
		 out += base64EncodeChars.charAt((c2 & 0xF) << 2);
		 out += "=";
		 break;
 }
 c3 = str.charCodeAt(i++);
 out += base64EncodeChars.charAt(c1 >> 2);
 out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
 out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
 out += base64EncodeChars.charAt(c3 & 0x3F);
		}
		return out;
}
function base64decode(str) {
		var c1, c2, c3, c4;
		var i, len, out;
		len = str.length;
		i = 0;
		out = "";
		while(i < len) {
 /* c1 */
 do {
		 c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
 } while(i < len && c1 == -1);
 if(c1 == -1)
		 break;
 /* c2 */
 do {
		 c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
 } while(i < len && c2 == -1);
 if(c2 == -1)
		 break;
 out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
 /* c3 */
 do {
		 c3 = str.charCodeAt(i++) & 0xff;
		 if(c3 == 61)
	return out;
		 c3 = base64DecodeChars[c3];
 } while(i < len && c3 == -1);
 if(c3 == -1)
		 break;
 out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
 /* c4 */
 do {
		 c4 = str.charCodeAt(i++) & 0xff;
		 if(c4 == 61)
	return out;
		 c4 = base64DecodeChars[c4];
 } while(i < len && c4 == -1);
 if(c4 == -1)
		 break;
 out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
		}
		return out;
}
function utf16to8(str) {
		var out, i, len, c;
		out = "";
		len = str.length;
		for(i = 0; i < len; i++) {
 c = str.charCodeAt(i);
 if ((c >= 0x0001) && (c <= 0x007F)) {
		 out += str.charAt(i);
 } else if (c > 0x07FF) {
		 out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
		 out += String.fromCharCode(0x80 | ((c >>	6) & 0x3F));
		 out += String.fromCharCode(0x80 | ((c >>	0) & 0x3F));
 } else {
		 out += String.fromCharCode(0xC0 | ((c >>	6) & 0x1F));
		 out += String.fromCharCode(0x80 | ((c >>	0) & 0x3F));
 }
		}
		return out;
}
function utf8to16(str) {
		var out, i, len, c;
		var char2, char3;
		out = "";
		len = str.length;
		i = 0;
		while(i < len) {
 c = str.charCodeAt(i++);
 switch(c >> 4)
 {
	 case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
		 // 0xxxxxxx
		 out += str.charAt(i-1);
		 break;
	 case 12: case 13:
		 // 110x xxxx	 10xx xxxx
		 char2 = str.charCodeAt(i++);
		 out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
		 break;
	 case 14:
		 // 1110 xxxx	10xx xxxx	10xx xxxx
		 char2 = str.charCodeAt(i++);
		 char3 = str.charCodeAt(i++);
		 out += String.fromCharCode(((c & 0x0F) << 12) |
				((char2 & 0x3F) << 6) |
				((char3 & 0x3F) << 0));
		 break;
 }
		}
		return out;
}